package a.f.g;

import a.c.d;
import a.c.e;
import a.c.*;
import a.d.p;
import a.d.t;
import a.f.o;
import a.f.rc;
import a.f.vc;
import a.f.zc;
import a.i.h;
import a.i.wb;

import java.util.ArrayList;

public class k
  implements vc
{
  private rc e;
  protected o f;
  protected wb g;
  protected double[] h;
  protected double[] i;
  protected double[] j;
  protected double[] k;
  protected e[] l;
  private q m;
  private e[] n;
  private int[] o;
  private int p = 0;
  private h q;
  private e[] r;
  private double[] s;
  private double t;
  private static final boolean u = true;
  private static final boolean v = false;
  public static int w;
  
  public k(double paramDouble)
  {
    this(new wb(42L), paramDouble);
  }
  
  public k(wb paramwb, double paramDouble)
  {
    if (!j.c)
    {
      if (paramwb == null) {
        paramwb = new wb();
      }
      this.g = paramwb;
      this.t = paramDouble;
    }
  }
  
  public boolean canLayout(o paramo)
  {
    boolean bool = j.c;
    if ((bool) || (this.e != null)) {
      if (bool) {
        break label33;
      }
    }
    label33:
    return this.e.canLayout(paramo);
  }
  
  public void doLayout(o paramo)
  {
    boolean bool = j.c;
    int i6 = j.b;
    if ((bool) || (this.e != null)) {
      this.e.doLayout(paramo);
    }
    if (paramo.j() < 1) {
      return;
    }
    this.f = paramo;
    this.l = paramo.t();
    this.h = new double[this.l.length];
    this.i = new double[this.l.length];
    this.j = new double[this.l.length];
    this.k = new double[this.l.length];
    double d1 = 0.0D;
    double d2 = 0.0D;
    double d4;
    double d3 = d4 = 1.7976931348623157E+308D;
    double d6;
    double d5 = d6 = -1.797693134862316E+308D;
    double d7 = this.t * 2.0D;
    int i1 = this.l.length - 1;
    label242:
    do
    {
      if (i1 < 0) {
        break;
      }
      zc localzc = paramo.d(this.l[i1]);
      if (bool) {
        break label472;
      }
      if (i6 != 0) {
        break label469;
      }
      if (!bool)
      {
        if (this.t > 0.0D)
        {
          this.j[i1] = (localzc.c() + this.t);
          this.k[i1] = (localzc.d() + this.t);
          if (bool) {
            break label242;
          }
        }
      }
      else {
        if (i6 == 0) {
          break label256;
        }
      }
      this.j[i1] = localzc.c();
      this.k[i1] = localzc.d();
      double d9 = localzc.a() + localzc.c() / 2.0D;
      double d10 = localzc.b() + localzc.d() / 2.0D;
      d1 += (this.h[i1] = d9);
      d2 += (this.i[i1] = d10);
      double d12 = 0.5D * localzc.c();
      double d14 = 0.5D * localzc.d();
      if (!bool) {
        if (d9 + d12 > d5) {
          d5 = d9 + d12;
        }
      }
      if (!bool) {
        if (d10 + d14 > d6) {
          d6 = d10 + d14;
        }
      }
      if (!bool) {
        if (d9 - d12 < d3) {
          d3 = d9 - d12;
        }
      }
      if (!bool)
      {
        if (d10 - d14 < d4) {
          d4 = d10 - d14;
        }
        i1--;
      }
    } while (i6 == 0);
    label256:
    if (!bool) {}
    label469:
    label472:
    double d8 = Math.max((d5 - d3) * (d6 - d4), 1.0D);
    l locall = new l();
    locall.a(this.t);
    locall.a(false);
    locall.b(true);
    locall.a((byte)2);
    int i3 = 10;
    label650:
    label665:
    label673:
    do
    {
      locall.doLayout(paramo);
      double d11 = 0.0D;
      double d13 = 0.0D;
      int i2;
      do
      {
        int i4 = this.l.length - 1;
        if (i4 >= 0) {}
        while (bool)
        {
          double d16 = this.h[i4] - paramo.m(this.l[i4]);
          double d18 = this.i[i4] - paramo.n(this.l[i4]);
          d11 += d16 * d16 + d18 * d18;
          if (bool) {
            break label665;
          }
          d13 = Math.max(d13, d16 * d16 + d18 * d18);
          i4--;
          if (i6 != 0) {
            break label650;
          }
          if (i6 == 0) {
            break;
          }
        }
        d11 /= this.l.length;
        double d15 = Math.sqrt(d11) / (Math.sqrt(d8) * 0.025D);
        if (((bool) || (d15 > 1.01D)) && ((bool) || (i3-- > 0))) {
          if (bool) {}
        }
        i2 = Math.sqrt(d13) >= this.t ? 1 : 0;
        if (bool) {
          break;
        }
        if (i2 != 0)
        {
          double d17 = d1 / this.l.length;
          double d19 = d2 / this.l.length;
          d1 = d2 = 0.0D;
          double d20 = Math.min(2.0D, 1.05D + Math.sqrt(d15) * 0.05D);
          d8 *= d20 * d20;
          int i5 = this.l.length - 1;
          do
          {
            if (i5 < 0) {
              break label901;
            }
            d1 += (this.h[i5] = d17 + (this.h[i5] - d17) * d20);
            d2 += (this.i[i5] = d17 + (this.i[i5] - d19) * d20);
            paramo.a(this.l[i5], this.h[i5], this.i[i5]);
            i5--;
            if (i6 != 0) {
              break;
            }
            if (bool) {
              break label673;
            }
          } while (i6 == 0);
        }
      } while (bool);
    } while (i2 != 0);
    label901:
  }
  
  private void a(n paramn)
  {
    boolean bool = j.c;
    int i5 = j.b;
    this.p += 1;
    int i1 = this.n.length - 1;
    label147:
    label148:
    label238:
    label243:
    do
    {
      do
      {
        if (i1 < 0) {
          return;
        }
        e locale1 = this.n[i1];
        int i2 = locale1.f();
        if (this.o[i2] != this.p) {
          if ((bool) || ((locale1.c() != 0) && (locale1.c() != 0)))
          {
            this.q.b(locale1);
            this.o[i2] = this.p;
            double d1 = this.h[i2];
            double d2 = this.i[i2];
            double d5;
            double d3 = d5 = this.h[i2];
            double d6;
            double d4 = d6 = this.i[i2];
            double d7 = 1.0D;
            double d10;
            do
            {
              if (!this.q.g())
              {
                e locale2 = (e)this.q.c();
                d1 = this.h[locale2.f()];
                d2 = this.i[locale2.f()];
                if (!bool) {
                  if (d1 > d5)
                  {
                    d5 = d1;
                    if (bool) {
                      break label243;
                    }
                    if (i5 == 0) {
                      break label238;
                    }
                  }
                }
                if (!bool) {
                  if (d1 < d3) {
                    d3 = d1;
                  }
                }
                if (!bool) {
                  if (d2 > d6) {
                    d6 = d2;
                  }
                }
                if ((bool) || ((i5 != 0) && ((bool) || (d2 < d4)))) {
                  d4 = d2;
                }
                d locald = locale2.i();
                e locale3;
                int i3;
                if (locald != null)
                {
                  locale3 = locald.e();
                  i3 = locale3.f();
                }
                do
                {
                  if (i5 != 0) {
                    break;
                  }
                  if (this.o[i3] != this.p)
                  {
                    this.o[i3] = this.p;
                    this.q.b(locale3);
                    d10 = paramn.getDouble(locald);
                    if (bool) {
                      break label386;
                    }
                    if (d10 > d7) {
                      d7 = d10;
                    }
                  }
                  locald = locald.j();
                  if (i5 == 0) {
                    break label289;
                  }
                  if (bool) {
                    break label291;
                  }
                  locald = locale2.h();
                  if (locald == null) {
                    break label148;
                  }
                  locale3 = locald.f();
                  i3 = locale3.f();
                } while (bool);
                do
                {
                  if (i5 != 0) {
                    break;
                  }
                } while (bool);
                if (i5 != 0) {
                  break;
                }
                if (this.o[i3] != this.p)
                {
                  this.o[i3] = this.p;
                  this.q.b(locale3);
                  d10 = paramn.getDouble(locald);
                  if (bool) {
                    break label513;
                  }
                  if (d10 > d7) {
                    d7 = d10;
                  }
                }
                locald = locald.i();
                if (i5 == 0) {
                  break label147;
                }
              }
            } while (bool);
            if (bool) {
              break;
            }
            if (d7 > 1.0D)
            {
              if (!bool)
              {
                if (d5 - d3 < 5.0D)
                {
                  d5 += 0.25D;
                  d3 -= 0.25D;
                }
                if (bool) {}
              }
              else if (d6 - d4 < 5.0D)
              {
                d6 += 0.25D;
                d4 -= 0.25D;
              }
              double d8 = Math.sqrt((d5 - d3) * (d5 - d3) + (d6 - d4) * (d6 - d4)) * 0.5D;
              double d9 = Math.min(5.0D, Math.max((d6 - d4) / (d5 - d3), 0.2D));
              d10 = Math.min(d8 * 1.5D, d8 * 1.05D + d8 + 20.0D + this.t * 2.0D);
              double d11 = d7 * 1.01D;
              double d12 = (d5 + d3) * 0.5D;
              double d13 = (d6 + d4) * 0.5D;
              System.out.println("scaling " + d12 + " " + d13 + " " + d11);
              double d14 = (d11 - 1.0D) * (0.5D * (d8 + d10));
              double d15 = (d11 - 1.0D) / (2.0D * (d10 - d8));
              double d16 = Math.sqrt(d14 / d15);
              double d17 = d14 / d16;
              if (!bool) {
                if (d17 > 0.02500000000000002D)
                {
                  d17 = 0.02500000000000002D;
                  d20 = d17 / (2.0D * d15);
                  d16 = 2.0D * (d14 - d15 * d20) / d17;
                  d10 += d20;
                  d18 = d10 + d16;
                  d19 = d17 / (2.0D * d16);
                  if (bool) {
                    break label947;
                  }
                  if (i5 == 0) {
                    break label918;
                  }
                }
              }
              double d18 = d10 + d16;
              d10 += d16 / 2.0D;
              double d19 = d15;
              double d20 = d11 * d10 - d15 * (d10 - d8) * (d10 - d8);
              int i4 = this.h.length - 1;
              do
              {
                if (i4 < 0) {
                  break label1254;
                }
                double d21 = this.h[i4] - d12;
                double d22 = (this.i[i4] - d13) / d9;
                double d23 = Math.sqrt(d21 * d21 + d22 * d22);
                if (i5 != 0) {
                  break;
                }
                if (d23 != 0.0D)
                {
                  double d24;
                  if (!bool) {
                    if (d23 < d8)
                    {
                      d24 = d23 * d11;
                      this.h[i4] = (d12 + d21 * d24 / d23);
                      this.i[i4] = (d13 + d9 * d22 * d24 / d23);
                      if (bool) {
                        continue;
                      }
                      if (i5 == 0) {
                        break label1246;
                      }
                    }
                  }
                  if (!bool) {
                    if (d23 < d10)
                    {
                      d24 = d23 * d11 - (d23 - d8) * (d23 - d8) * d15;
                      this.h[i4] = (d12 + d21 * d24 / d23);
                      this.i[i4] = (d13 + d9 * d22 * d24 / d23);
                      if (bool) {
                        continue;
                      }
                      if (i5 == 0) {
                        break label1246;
                      }
                    }
                  }
                  if (bool) {
                    continue;
                  }
                  if (d23 < d18)
                  {
                    d24 = d20 + (d23 - d10) * 0.975D + (d23 - d10) * (d23 - d10) * d19;
                    this.h[i4] = (d12 + d21 * d24 / d23);
                    this.i[i4] = (d13 + d9 * d22 * d24 / d23);
                  }
                }
                i4--;
              } while (i5 == 0);
            }
          }
        }
        i1--;
      } while (bool);
    } while (i5 == 0);
    label289:
    label291:
    label947:
    label1246:
    label1254:
    return;
  }
  
  protected void b()
  {
    boolean bool = j.c;
    int i2 = j.b;
    do
    {
      for (int i1 = this.l.length - 1; i2 == 0; i1--)
      {
        if (i1 < 0) {
          break;
        }
        this.h[i1] = this.f.m(this.l[i1]);
        this.i[i1] = this.f.n(this.l[i1]);
      }
    } while (bool);
  }
  
  private void c()
  {
    boolean bool = j.c;
    int i3 = j.b;
    ArrayList localArrayList = new ArrayList(this.l.length / 8 + 10);
    label42:
    label236:
    do
    {
      localArrayList.clear();
      int i1 = this.l.length - 1;
      if (i1 >= 0) {}
      int i2;
      while (bool)
      {
        if (i3 != 0) {
          break label161;
        }
        i2 = i1 - 1;
        do
        {
          do
          {
            if (i2 < 0) {
              break label137;
            }
            double d1 = this.h[i1] - this.h[i2];
            double d2 = this.i[i1] - this.i[i2];
            double d3 = Math.sqrt(d1 * d1 + d2 * d2);
            if (i3 != 0) {
              break;
            }
            if (d3 <= 0.0D)
            {
              localArrayList.add(this.l[i1]);
              i2 = -1;
            }
            i2--;
          } while (i3 == 0);
          i1--;
        } while (bool);
        if (i3 == 0) {
          break;
        }
      }
      i1 = localArrayList.size() - 1;
      do
      {
        do
        {
          if (i1 < 0) {
            break label236;
          }
          i2 = ((e)localArrayList.get(i1)).f();
          this.h[i2] += this.g.a(-1.0D, 1.0D);
          this.i[i2] += this.g.a(-1.0D, 1.0D);
          i1--;
          if (i3 != 0) {
            break;
          }
          if (bool) {
            break label42;
          }
        } while (i3 == 0);
      } while (bool);
    } while (!localArrayList.isEmpty());
    label137:
    label161:
    return;
  }
  
  public rc a()
  {
    return this.e;
  }
  
  public void a(rc paramrc)
  {
    this.e = paramrc;
  }
  
  static class a_
    implements p
  {
    int a;
    t b;
    
    a_(int paramInt, t paramt)
    {
      this.a = paramInt;
      this.b = paramt;
    }
    
    public t a()
    {
      return this.b;
    }
  }
  
  class b_
    implements m.g_
  {
    q a;
    e[] b;
    z c = new z();
    x d;
    n e;
    double f;
    
    b_(q paramq, e[] paramArrayOfe, x paramx, n paramn)
    {
      this.e = paramn;
      int i = k.this.h.length - 1;
      do
      {
        if (i < 0) {
          break;
        }
        t localt = new t(k.this.h[i] - k.this.j[i] / 2.0D, k.this.i[i] - k.this.k[i] / 2.0D, k.this.j[i], k.this.k[i]);
        this.c.a(new k.a_(i, localt));
        i--;
        if ((!bool) && (j != 0)) {
          return;
        }
      } while (j == 0);
      this.b = paramArrayOfe;
      this.d = paramx;
      if (!bool) {
        this.a = paramq;
      }
    }
    
    public void a()
    {
      int j = j.b;
      int i = 0;
      v localv = this.c.f();
      do
      {
        if (localv == null) {
          break;
        }
        t localt = new t(k.this.h[i] - k.this.j[i] / 2.0D, k.this.i[i] - k.this.k[i] / 2.0D, k.this.j[i], k.this.k[i]);
        ((k.a_)localv.c()).b = localt;
        i++;
        localv = localv.a();
      } while (j == 0);
    }
    
    public void b()
    {
      boolean bool = j.c;
      int j = j.b;
      this.f = 1.0D;
      if ((bool) || (this.a.l() > 0))
      {
        a.c.m localm = this.a.w();
        do
        {
          if (!localm.e()) {
            break;
          }
          if (j != 0) {
            break label72;
          }
          this.a.a(localm.a());
          localm.f();
        } while (j == 0);
      }
      label72:
      int i = this.b.length - 1;
      if (i >= 0) {}
      while (bool)
      {
        this.d.a(this.b[i], 1.0D);
        i--;
        if ((!bool) && (j != 0)) {
          return;
        }
        if (j == 0) {
          break;
        }
      }
      a.d.m.a(this.c, this);
    }
    
    public double c()
    {
      return this.f;
    }
    
    public void a(Object paramObject1, Object paramObject2)
    {
      boolean bool = j.c;
      int k = j.b;
      k.a_ locala_1 = (k.a_)paramObject1;
      k.a_ locala_2 = (k.a_)paramObject2;
      d locald = this.a.a(this.b[locala_1.a], this.b[locala_2.a]);
      int i = locala_1.a;
      int j = locala_2.a;
      double d1 = k.this.h[j] - k.this.h[i];
      double d2 = k.this.i[j] - k.this.i[i];
      double d3 = k.this.j[i];
      double d4 = k.this.k[i];
      double d5 = k.this.j[j];
      double d6 = k.this.k[j];
      double d7 = Math.sqrt(d1 * d1 + d2 * d2);
      if (!bool)
      {
        if (d1 == 0.0D)
        {
          d8 = (d4 + d6) / (2.0D * d7);
          if (bool) {
            break label324;
          }
          if (k == 0) {
            break label305;
          }
        }
        if (bool) {}
      }
      else if (d2 == 0.0D)
      {
        d8 = (d3 + d5) / (2.0D * d7);
        if (bool) {
          break label324;
        }
        if (k == 0) {
          break label305;
        }
      }
      double d9 = d2 / d1;
      double d10 = Math.min(Math.abs((d4 + d6) / (d9 * 2.0D)), (d3 + d5) * 0.5D);
      double d8 = Math.sqrt(d10 * d10 + d10 * d10 * d9 * d9) / d7;
      label305:
      label324:
      if (!bool) {
        if (this.d.getDouble(this.b[i]) < d8) {
          this.d.a(this.b[i], d8);
        }
      }
      if (!bool) {
        if (this.d.getDouble(this.b[j]) < d8) {
          this.d.a(this.b[j], d8);
        }
      }
      if (!bool)
      {
        if (d8 > this.f) {
          this.f = d8;
        }
        this.e.a(locald, d8);
      }
      if (!bool)
      {
        if (q.n) {
          k++;
        }
      }
      else {
        j.b = k;
      }
      if (q.o) {
        j.c = !bool;
      }
    }
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.f.g.k

 * JD-Core Version:    0.7.0.1

 */